// DataLibrary InterfacePlugin Skin - Music

// 識別子：DL_MSC
// 内容  ：ミュージック用スキン。

//----------------------------------------------------------------------------//
// Plugin
//----------------------------------------------------------------------------//

//-- プラグインの読み込み処理 --//
DL_LoadSkin_Music:
	Call DL_LoadSkin "Common"  // スキン用の共有サブルーチンを読み込む
Return


//-- プラグインの終了処理 --//
//DL_UnLoadSkin_Music:
//Return


//----------------------------------------------------------------------------//
// HelpText
//----------------------------------------------------------------------------//

//-- ヘルプ用ショートカットキー一覧 --//
DL_HLP_LoadHelpText_Music:
	Call DL_HLP_SetKeyHelp "右クリック" "最初の画面に戻る"
	Call DL_HLP_SetKeyHelp "BackSpace" "最初の画面に戻る"
	Call DL_HLP_SetKeyHelp "ESC" (DL_MainTitle & "を終了します")
	Call DL_HLP_SetKeyHelp "F1" "最初の画面に戻る"
	Call DL_HLP_SetKeyHelp "F2" "ヘルプを開く"
	Call DL_HLP_SetKeyHelp "F3" "コンフィグを開く"
	Call DL_HLP_SetKeyHelp "←" "前のページへ"
	Call DL_HLP_SetKeyHelp "→" "次のページへ"
Return


//----------------------------------------------------------------------------//
// Skin-Music
//----------------------------------------------------------------------------//

//-- SkinAction action_id select_id : アクションに合わせてインターフェースを再描画する --//
DL_MSC_SkinAction:
	Switch Args(1)
	Case "StartInterface"
		// スクロールの準備をする
		Call DL_SetScrollData "Music" "PageB" 10 DL_LibCount[DL_ShowLib]
//		Call DL_SetScrollData "Music" "Page" 20 DL_LibCount[DL_ShowLib]  // 二列リスト用
		
		Call DL_CMN_ChangeFontFace "Music"  // 個別フォント指定を適用する
		Call DL_MSC_DisplayInterface        // インターフェースを表示する
	Case "EndInterface"
		// スクロール情報を削除する
		Call DL_SetScrollData "Music" "Delete"
		
		Call DL_CMN_ClearFontFace "Music"   // 個別フォント指定を解除する
	Case "StartSubInterface"
		Call DL_CMN_ClearFontFace "Music"   // 個別フォント指定を解除する
	Case "EndSubInterface"
		Call DL_CMN_ChangeFontFace "Music"  // 個別フォント指定を再適用する
		Call DL_MSC_DisplayInterface        // インターフェースを表示し直す
	Case "SelectMusic"
		Call DL_CMN_ListFrameAction Args(2) "Emphasis"
		// 演奏していた項目を元に戻す
		If DL_MSC_MusicID > 0 Then
			Call DL_CMN_ListFrameAction ("Music " & DL_MSC_MusicID) "Point"
		EndIf
		Refresh
	Case "SelectScroll"
		Call DL_CMN_PageControllAciton Args(2) "Select"
		Refresh
	Case "RedrawScroll"
		Call DL_MSC_DisplayInterface
		Refresh
	Case "CancelScroll"
		ClearPicture
		Refresh
	Case "SelectHelp"
		Call DL_CMN_ImageButtonAction "Help" "Select"
		Refresh
	Case "SelectConfig"
		Call DL_CMN_ImageButtonAction "Config" "Select"
		Refresh
	Case "SelectReturn"
		Call DL_CMN_ImageButtonAction "Return" "Select"
		Refresh
	Case "CancelQuit"
		ClearPicture
		Refresh
	EndSw
Return


//-- DisplayInterface : インターフェースを表示する --//
DL_MSC_DisplayInterface:
	Call DL_CMN_ClearDisplay      // 画面を初期化する
	Call DL_CMN_ClearShortcutKey  // ショートカットキーを初期化する
	UnSet DL_CMN_ActionData       // アクションデータを初期化する
	
	// 文字・線の描画方法を保持にする
	Call DL_CMN_SetDrawOption "保持"
	
	// 背景とタイトルを表示する
	Call DL_CMN_Background
	Call DL_CMN_Title DL_GetLibTitle(DL_ShowLib) DL_GetLibIcon(DL_ShowLib)
	
	// ミュージックリストを表示する
	Local py = 64
	Local i
	For i = DL_ScrollFirst("Music") To DL_ScrollLast("Music")
		Call DL_CMN_ListFrame ("Music " & i) 40 py 400 24 DL_GetLibItemData(DL_ShowLib, i, 1) _
			IIf(DL_IsFlagUnread(DL_GetLibItemID(DL_ShowLib, i)), "Unread", "Point") _
			DL_Image["IconMusicList"] "保持 透過"
		Incr py 36
	Next
	
	// ミュージックリストを表示する(二列リスト)
//	Local px = 20
//	Local py = 60
//	Local i
//	For i = DL_ScrollFirst("Music") To DL_ScrollLast("Music")
//		Call DL_CMN_ListFrame ("Music " & i) px py 215 24 DL_GetLibItemData(DL_ShowLib, i, 1) _
//			IIf(DL_IsFlagUnread(DL_GetLibItemID(DL_ShowLib, i)), "Unread", "Point") _
//			DL_Image["IconMusicList"] "保持 透過"
//		Incr px (225 * (-1 + 2 * (i Mod 2)))
//		Incr py (36 * ((i Mod 2) = 0))
//	Next
	
	// 演奏中の項目を強調表示する
	If DL_MSC_MusicID > 0 Then
		Call DL_CMN_ListFrameAction ("Music " & DL_MSC_MusicID) "Emphasis"
	EndIf
	
	// スクロールボタンを表示する
	Call DL_CMN_PageControll 166 429 "Music"
	
	// 戻るボタンを表示する
	Call DL_CMN_ImageButton "Return" DL_Image["Return"] 424 8 32 32 _
		IIf(IsVarDefined(DL_SingleMode), "終了する", "戻る") 1
	
	// アイコンを表示する
	Call DL_CMN_ImageButton "Config" DL_Image["IconConfig"] 395 435 24 24 "コンフィグを表示する" 1
	Call DL_CMN_ImageButton "Help" DL_Image["IconHelp"] 430 435 24 24 "ヘルプを表示する" 1
	
	// 文字・線の描画方法を通常にする
	Call DL_CMN_SetDrawOption "通常"
	
	// ショートカットキーを設定する
	Call DL_CMN_SetShortcutKey 2 "Cancel"    // RightClick
	Call DL_CMN_SetShortcutKey 8 "Cancel"    // BS
	Call DL_CMN_SetShortcutKey 27 "Quit"     // ESC
	Call DL_CMN_SetShortcutKey 112 "Index"   // F1
	Call DL_CMN_SetShortcutKey 113 "Help"    // F2
	Call DL_CMN_SetShortcutKey 114 "Config"  // F3
	If DL_GetScrollData("Music", "IsPrev") Then
		Call DL_CMN_SetShortcutKey 37 "Scroll Music -1"  // ←
	EndIf
	If DL_GetScrollData("Music", "IsNext") Then
		Call DL_CMN_SetShortcutKey 39 "Scroll Music +1"  // →
	EndIf
Return


